package com.gopay.common.domain.dps;

import com.gopay.common.domain.BaseEntity;

import javax.persistence.*;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 钱包tyy 产品表
 * @author baiyunpeng
 *
 */
@Entity
@Table(name = "WA_TYY_PRODUCT")
public class WaTyyProduct extends BaseEntity implements Serializable {

    private Integer productId;
    private String productName;
    private String productTerm;
    private String productType;
    private String periodType;
    private int periodCounts;
    private String corpCustId;
    private String corpCustName;
    private String status;
    private Date purchaseBeginTime;
    private Date purchaseEndTime;
    private String profitMethod;
    private Date profitDate;
    private Date expirationDate;
    private BigDecimal annualReturnRate;
    private BigDecimal realAnnualReturnRate;
    private Date cteateTime;
    private BigDecimal amtLimit;
    private BigDecimal unsettleAmt;
    private BigDecimal avaAmt;
    private BigDecimal purchaseAmt;
    private Integer version;
    private String remark1;
    private String remark2;

    /**
     * '产品ID'
     * @return
     */
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "WA_TYY_PRODUCT_ID_SEQ")
    @SequenceGenerator(name = "WA_TYY_PRODUCT_ID_SEQ", allocationSize = 1, initialValue = 1, sequenceName = "WA_TYY_PRODUCT_ID_SEQ")
    @Column(name = "PRODUCT_ID")
    public Integer getProductId() {
        return productId;
    }
    public void setProductId(Integer productId) {
        this.productId = productId;
    }

    /**
     * 产品名字
     * @return
     */
    @Column(name = "PRODUCT_NAME")
    public String getProductName() {
        return productName;
    }
    public void setProductName(String productName) {
        this.productName = productName;
    }

    @Column(name = "PRODUCT_TERM")
    public String getProductTerm() {
        return productTerm;
    }
    public void setProductTerm(String productTerm) {
        this.productTerm = productTerm;
    }

    @Column(name = "PRODUCT_TYPE")
    public String getProductType() {
        return productType;
    }
    public void setProductType(String productType) {
        this.productType = productType;
    }

    /**
     * '周期单位类型：1）y 年 2）M 月 3）d 日';
     * @return
     */
    @Column(name = "PERIOD_TYPE")
    public String getPeriodType() {
        return periodType;
    }
    public void setPeriodType(String periodType) {
        this.periodType = periodType;
    }

    /**
     * '周期长度：和周期单位一起使用，例如180(d)，表示180天的产品周期';
     * @return
     */
    @Column(name = "PERIOD_COUNTS")
    public int getPeriodCounts() {
        return periodCounts;
    }
    public void setPeriodCounts(int periodCounts) {
        this.periodCounts = periodCounts;
    }

    /**
     * '产品所属企业ID'
     * @return
     */
    @Column(name = "CORP_CUST_ID")
    public String getCorpCustId() {
        return corpCustId;
    }
    public void setCorpCustId(String corpCustId) {
        this.corpCustId = corpCustId;
    }

    /**
     * '产品所属企业名字'
     * @return
     */
    @Column(name = "CORP_CUST_NAME")
    public String getCorpCustName() {
        return corpCustName;
    }
    public void setCorpCustName(String corpCustName) {
        this.corpCustName = corpCustName;
    }

    /**
     * 未开始（10000）
     销售中（20000）
     已售罄（30000）
     已到期（30001）
     已关闭（30002）'
     * @return
     */
    @Column(name = "STATUS")
    public String getStatus() {
        return status;
    }
    public void setStatus(String status) {
        this.status = status;
    }

    /**
     * '购买开始时间'
     * @return
     */
    @Column(name = "PURCHASE_BEGIN_TIME")
    public Date getPurchaseBeginTime() {
        return purchaseBeginTime;
    }
    public void setPurchaseBeginTime(Date purchaseBeginTime) {
        this.purchaseBeginTime = purchaseBeginTime;
    }

    /**
     * '购买结束时间'
     * @return
     */
    @Column(name = "PURCHASE_END_TIME")
    public Date getPurchaseEndTime() {
        return purchaseEndTime;
    }
    public void setPurchaseEndTime(Date purchaseEndTime) {
        this.purchaseEndTime = purchaseEndTime;
    }

    /**
     * '计息方式：例如D+1'
     * @return
     */
    @Column(name = "PROFIT_METHOD")
    public String getProfitMethod() {
        return profitMethod;
    }
    public void setProfitMethod(String profitMethod) {
        this.profitMethod = profitMethod;
    }

    /**
     * '计息时间'
     * @return
     */
    @Column(name = "PROFIT_DATE")
    public Date getProfitDate() {
        return profitDate;
    }
    public void setProfitDate(Date profitDate) {
        this.profitDate = profitDate;
    }

    /**
     * '到期时间'
     * @return
     */
    @Column(name = "EXPIRATION_DATE")
    public Date getExpirationDate() {
        return expirationDate;
    }
    public void setExpirationDate(Date expirationDate) {
        this.expirationDate = expirationDate;
    }

    /**
     * 年化收益率，为五位整数'
     * @return
     */
    @Column(name = "ANNUAL_RETURN_RATE")
    public BigDecimal getAnnualReturnRate() {
		return annualReturnRate;
	}
	public void setAnnualReturnRate(BigDecimal annualReturnRate) {
		this.annualReturnRate = annualReturnRate;
	}
	
	/**
     * '实际年化收益率，五位整数'
     * @return
     */
    @Column(name = "REAL_ANNUAL_RETURN_RATE")
    public BigDecimal getRealAnnualReturnRate() {
        return realAnnualReturnRate;
    }
   
	public void setRealAnnualReturnRate(BigDecimal realAnnualReturnRate) {
        this.realAnnualReturnRate = realAnnualReturnRate;
    }
	
    @Column(name = "CTEATE_TIME")
    public Date getCteateTime() {
        return cteateTime;
    }
    public void setCteateTime(Date cteateTime) {
        this.cteateTime = cteateTime;
    }

    /**
     * '产品限额'
     * @return
     */
    @Column(name = "AMT_LIMIT")
    public BigDecimal getAmtLimit() {
        return amtLimit;
    }
    public void setAmtLimit(BigDecimal amtLimit) {
        this.amtLimit = amtLimit;
    }

    /**
     *'未结算金额'
     * @return
     */
    @Column(name = "UNSETTLE_AMT")
    public BigDecimal getUnsettleAmt() {
        return unsettleAmt;
    }
    public void setUnsettleAmt(BigDecimal unsettleAmt) {
        this.unsettleAmt = unsettleAmt;
    }

    /**
     * 可购买余额'
     * @return
     */
    @Column(name = "AVA_AMT")
    public BigDecimal getAvaAmt() {
        return avaAmt;
    }
    public void setAvaAmt(BigDecimal avaAmt) {
        this.avaAmt = avaAmt;
    }

    /**
     * '已购买金额'
     * @return
     */
    @Column(name = "PURCHASE_AMT")
    public BigDecimal getPurchaseAmt() {
        return purchaseAmt;
    }
    public void setPurchaseAmt(BigDecimal purchaseAmt) {
        this.purchaseAmt = purchaseAmt;
    }

    @Version
    @Column(name = "VERSION")
    public Integer getVersion() {
        return version;
    }
    public void setVersion(Integer version) {
        this.version = version;
    }

    /**
     * '备注一'
     * @return
     */
    @Column(name = "REMARK1",length = 500)
    public String getRemark1() {
        return remark1;
    }

    public void setRemark1(String remark1) {
        this.remark1 = remark1;
    }

    /**
     * '备注二'
     * @return
     */
    @Column(name = "REMARK2",length = 500)
    public String getRemark2() {
        return remark2;
    }

    public void setRemark2(String remark2) {
        this.remark2 = remark2;
    }
}
